package fachadaSonido.delegate;

import java.util.List;

import multimedia.MultimediaTO;
import fachadaSonido.actions.BuscarPorNombreAction;
import fachadaSonido.actions.BuscarSonidoAction;
import fachadaSonido.actions.EditarSonidoAction;
import fachadaSonido.actions.EliminarSonidoAction;
import fachadaSonido.actions.ListarSonidosAction;
import fachadaSonido.actions.RegistrarSonidoAction;

public class SonidoFacadeDelegate implements ISonidoFacade {

	@SuppressWarnings("unchecked")
	public List<MultimediaTO> buscarSonido(String palabraClave) {
		BuscarSonidoAction accion = new BuscarSonidoAction(palabraClave);
		return (List<MultimediaTO>) accion.Execute();
	}

	public MultimediaTO buscarPorNombre(String nombreSonido) {
		BuscarPorNombreAction accion = new BuscarPorNombreAction(nombreSonido);
		return (MultimediaTO) accion.Execute();
	}

	@SuppressWarnings("unchecked")
	public List<MultimediaTO> listarSonidos() {
		ListarSonidosAction accion = new ListarSonidosAction();
		return (List<MultimediaTO>) accion.Execute();

	}

	public void registrarSonido(MultimediaTO sonido) {
		RegistrarSonidoAction accion = new RegistrarSonidoAction(sonido);
		accion.Execute();
	}

	public void eliminarSonido(String sonido) {
		EliminarSonidoAction accion = new EliminarSonidoAction(sonido);
		accion.Execute();
	}

	public void editarSonido(String nombreSonido, String nuevaPalabraClave) {
		EditarSonidoAction accion = new EditarSonidoAction(nombreSonido,
				nuevaPalabraClave);
		accion.Execute();
	}

}
